package org.xuyuji.web.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.xuyuji.web.dao.MenuDao;
import org.xuyuji.web.dto.Menu;

public class MenuService {
	private MenuDao menuDao = new MenuDao();
	
//	public Menu getAllMenu(){
//		List<Menu> list = menuDao.getAllMenu();
//		Map<Integer, Menu> map = new HashMap<Integer, Menu>();
//		Menu root = new Menu();
//		
//		for(int i = 0; i < list.size(); i++){
//			Menu menu = list.get(i);
//			map.put(menu.getMenuId(), menu);
//		}
//		
//		for(Menu menu : list){
//			Integer parentId = menu.getParentId();
//			if(map.containsKey(parentId)){
//				map.get(parentId).addChild(menu);
//			}else{
//				root = menu;
//			}
//		}
//		
//		return root;
//	}
	
	public Menu getAllMenu(){
		List<Menu> list = menuDao.getAllMenu();
		Map<Integer, Menu> map = new HashMap<Integer, Menu>();
		Menu root = new Menu();
		
		for(int i = 0; i < list.size(); i++){
			Menu menu = list.get(i);
			map.put(menu.getMenuId(), menu);
		}
		
		for(Menu menu : list){
			Integer parentId = menu.getParentId();
			if(map.containsKey(parentId)){
				map.get(parentId).addChild(menu);
			}else{
				root = menu;
			}
		}
		
		return root;
	}
	
	public String createTree(){
		StringBuilder sb = new StringBuilder();
		Menu menu = getAllMenu();
		
		sb.append("<ul>");
		for(Menu m:menu.getChilds()){
			sb.append(m);
		}
		sb.append("</ul>");
		
		return sb.toString();
	}
	
	public static void main(String[] args) {
		MenuService menuService = new MenuService();
		System.out.println(menuService.createTree());
	}
}
